template<class T>
struct A {
	typedef T Int;
};

template<class T, typename Y = A<T> >
class B  {
	typedef typename Y::Int Int;

};

int main()
{

}
